跳到主要内容

认识 Docker

Docker 是什么?

docker

  • Docker 是世界领先的软件容器平台。

  • Docker 使用 Google 公司推出的 Go 语言 进行开发实现,基于 Linux 内核 提供的 CGroup 和 Namespace 功能以及 AUFS 类的 UnionFS 等技术,对进程进行封装隔离。 由于隔离的进程独立于宿主和其它的隔离的进程,因此也称其为容器。

  • Docker 可以被用于自动执行一些重复性的任务,例如搭建和配置开发环境等,从而解放了开发人员,以便他们专注于编写软件本身。

  • 用户可以方便地创建和使用容器,把自己的应用放入容器。容器还可以进行版本管理、复制、分享、修改,就像管理普通的代码一样。

Docker 的核心思想是什么?

  • 集装箱:就像海运中的集装箱一样,Docker 容器包含了应用程序及其所有依赖项,确保在任何环境中都能以相同的方式运行。

  • **标准化:运输方式、存储方式、API 接口。

  • 隔离:每个 Docker 容器都在自己的隔离环境中运行,与宿主机和其他容器隔离。

Docker 容器有什么优点?

  • 轻量 : 在一台机器上运行的多个 Docker 容器可以共享这台机器的操作系统内核;它们能够迅速启动,只需占用很少的计算和内存资源。镜像是通过文件系统层进行构造的,并共享一些公共文件。这样能够尽可能降低存储空间占用,并有利于更快地下载镜像。

  • 标准 : Docker 容器基于开放式标准,能够在所有主流 GNU/Linux 发行版以及包括虚拟机、裸金属服务器和云在内的任何基础设施上运行。

  • 安全 : Docker 赋予应用的隔离性不仅限于彼此隔离,还独立于底层的基础设施。Docker 默认提供最强的隔离,因此即使应用本身出现问题,也只会表现为单个容器的问题,不会波及到整台机器。

为什么要使用 Docker ?

  • 一致的运行环境 Docker 镜像提供了操作系统内核之外的所有完整的运行时环境,确保了应用运行环境的一致性,从而避免了「这段代码在我机器上运行明明没问题啊」这类问题。使用 Docker,开发人员可以确保应用在开发、测试和生产环境中运行一致。

  • 更少的资源占用与更快的启动速度 Docker 容器共享主机操作系统的内核,只占用很少的额外资源,同时 Docker 容器的启动时间可以缩短到秒级甚至毫秒级,大大节约了开发、测试以及部署的时间。相比传统虚拟机动辄几十秒甚至几分钟的启动时间,容器的启动效率更高,使得应用能够更快速地响应变化和需求。

  • 更高的隔离性 Docker 提供了良好的资源隔离和控制能力,确保容器之间互不影响。每个容器都在独立的环境中运行,避免了各路服务抢占资源、相互干扰的问题,提高了应用的安全性和稳定性。

  • 迁移更方便 Docker 容器可以轻松地迁移到不同的平台或环境中,而不用担心运行环境的变化导致应用无法正常运行。镜像的可移植性使得应用可以在开发、测试、生产等不同阶段无缝迁移。